Built with doc-gen4, running Lean4. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓to navigate, Ctrl+🖱️to focus. On Mac, use Cmdinstead of Ctrl.
import Pretty.Defs.Resolve
import Pretty.Supports.MeasRender
import Pretty.Supports.ResolvePareto
import Pretty.Supports.ResolveOptimality
import Pretty.Claims.Widen

/-!
## Optimality theorems
-/

mutual
  /--
  The optimality theorem (Theorem 5.7)
  -/
  theorem 
Resolve_optimal: ∀ {α : Type} {F : Factory α} {d : Doc} {c i : } {ml : MeasureSet} {D : List Doc} {d_choiceless : Doc} {m : Meas}, Resolve F d c i mlWiden d Dd_choiceless DMeasRender F d_choiceless c i mm.y F.Wm.x F.Wms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
Resolve_optimal
(
h_print: Resolve F d c i ml
h_print
:
Resolve: {α : Type} → Factory αDocMeasureSetProp
Resolve
F: ?m.4
F
d: ?m.11
d
c: ?m.17
c
i: ?m.23
i
ml: ?m.29
ml
) (
h_widen: Widen d D
h_widen
:
Widen: DocList DocProp
Widen
d: ?m.11
d
D: ?m.38
D
) (
h_mem: d_choiceless D
h_mem
:
d_choiceless: ?m.63
d_choiceless
D: ?m.38
D
) (
h_render: MeasRender F d_choiceless c i m
h_render
:
MeasRender: {α : Type} → Factory αDocMeasProp
MeasRender
F: ?m.4
F
d_choiceless: ?m.63
d_choiceless
c: ?m.17
c
i: ?m.23
i
m: ?m.102
m
) (
h_y: m.y F.W
h_y
:
m: ?m.102
m
.
y: {α : Type} → Meas
y
F: ?m.4
F
.
W: {α : Type} → Factory α
W
) (
h_x: m.x F.W
h_x
:
m: ?m.102
m
.
x: {α : Type} → Meas
x
F: ?m.4
F
.
W: {α : Type} → Factory α
W
) : ∃
ms: ?m.164
ms
h: ?m.169
h
,
ml: ?m.29
ml
=
MeasureSet.set: {α : Type} → (ms : List Meas) → ms []MeasureSet
MeasureSet.set
ms: ?m.164
ms
h: ?m.169
h
∧ ∃
m_better: ?m.204
m_better
,
m_better: ?m.204
m_better
ms: ?m.164
ms
dominates: {α : Type} → Factory αMeasMeasBool
dominates
F: ?m.4
F
m_better: ?m.204
m_better
m: ?m.102
m
:=

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_print
Resolve F (Doc.text ?s) ?c ?i ml
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_widen
Widen (Doc.text ?s) ?D
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_mem
?d_choiceless ?D
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_render
MeasRender F ?d_choiceless ?c ?i m
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_y
m.y F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_x
m.x F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


s
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


c
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


i
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


D
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


d_choiceless
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_print
Resolve F (Doc.text ?s) ?c ?i ml
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_widen
Widen (Doc.text ?s) ?D
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_mem
?d_choiceless ?D
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_render
MeasRender F ?d_choiceless ?c ?i m
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_y
m.y F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


h_x
m.x F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


s
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


c
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


i
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


D
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


d_choiceless
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

s: String

h_print: Resolve F (Doc.text s) c i ml

h_widen: Widen (Doc.text s) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_print
Resolve F Doc.nl ?c ?i ml
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_widen
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_mem
?d_choiceless ?D
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_render
MeasRender F ?d_choiceless ?c ?i m
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_y
m.y F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_x
m.x F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


c
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


i
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


D
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


d_choiceless
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_print
Resolve F Doc.nl ?c ?i ml
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_widen
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_mem
?d_choiceless ?D
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_render
MeasRender F ?d_choiceless ?c ?i m
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_y
m.y F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


h_x
m.x F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


c
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


i
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


D
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


d_choiceless
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

h_print: Resolve F Doc.nl c i ml

h_widen: Widen Doc.nl D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

h_widen: Widen (Doc.nest n d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

L✝: List Doc

h✝: Widen d L✝

h_mem: d_choiceless List.map (fun d => Doc.nest n d) L✝


nest
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

h_widen: Widen (Doc.nest n d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

L✝: List Doc

h_widen: Widen d L✝

h_mem: d_choiceless List.map (fun d => Doc.nest n d) L✝


nest
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

h_widen: Widen (Doc.nest n d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

L✝: List Doc

h_widen: Widen d L✝

h_mem: a, a L✝ Doc.nest n a = d_choiceless


nest
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

h_widen: Widen (Doc.nest n d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

L✝: List Doc

h_widen: Widen d L✝

h_mem: a, a L✝ Doc.nest n a = d_choiceless

w✝: Doc

h_left: w✝ L✝

h_right: Doc.nest n w✝ = d_choiceless


nest
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

h_widen: Widen (Doc.nest n d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: a, a L✝ Doc.nest n a = Doc.nest n w✝


nest
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

h_widen: Widen (Doc.nest n d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: a, a L✝ Doc.nest n a = Doc.nest n w✝


nest
ms, (x, ml = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

h_widen: Widen (Doc.nest n d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: a, a L✝ Doc.nest n a = Doc.nest n w✝

ms✝: MeasureSet

h✝: Resolve F d c (i + n) ms✝


nest.nest
ms, (x, MeasureSet.lift (Meas.adjust_nest n) ms✝ = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

h_print: Resolve F (Doc.nest n d) c i ml

h_widen: Widen (Doc.nest n d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: a, a L✝ Doc.nest n a = Doc.nest n w✝

ms': MeasureSet

h': Resolve F d c (i + n) ms'


ms, (x, MeasureSet.lift (Meas.adjust_nest n) ms' = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

ms': MeasureSet

h': Resolve F d c (i + n) ms'

h_mem: w✝ L✝


ms, (x, MeasureSet.lift (Meas.adjust_nest n) ms' = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: a, a L✝ Doc.nest n a = Doc.nest n w✝

ms': MeasureSet

h': Resolve F d c (i + n) ms'


ms, (x, MeasureSet.lift (Meas.adjust_nest n) ms' = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)


tainted
ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

ms✝: List Meas

h✝: ms✝ []

h': Resolve F d c (i + n) (MeasureSet.set ms✝ h✝)


set
ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: a, a L✝ Doc.nest n a = Doc.nest n w✝

ms': MeasureSet

h': Resolve F d c (i + n) ms'


ms, (x, MeasureSet.lift (Meas.adjust_nest n) ms' = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h✝: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W


nest
ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W


nest
ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W


nest
ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W


nest
ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W


MeasRender F w✝ c (i + n) ?m.14220

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W

this: { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.y F.W{ last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.x F.Wms h, MeasureSet.tainted m✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ } = true


nest
ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: y✝ F.W

h_x: x✝ F.W

this: y✝ F.Wx✝ F.WFalse


nest
ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c (i + n) (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: a, a L✝ Doc.nest n a = Doc.nest n w✝

ms': MeasureSet

h': Resolve F d c (i + n) ms'


ms, (x, MeasureSet.lift (Meas.adjust_nest n) ms' = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')


ms, (¬ms = [] List.map (fun x => { last := x.last, cost := x.cost, doc := Doc.nest n x.doc, x := x.x, y := x.y }) printed_ms = ms) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h✝: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W


nest
ms, (¬ms = [] List.map (fun x => { last := x.last, cost := x.cost, doc := Doc.nest n x.doc, x := x.x, y := x.y }) printed_ms = ms) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W


nest
ms, (¬ms = [] List.map (fun x => { last := x.last, cost := x.cost, doc := Doc.nest n x.doc, x := x.x, y := x.y }) printed_ms = ms) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W

h_now: ms h, MeasureSet.set printed_ms h_render' = MeasureSet.set ms h m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ } = true


nest
ms, (¬ms = [] List.map (fun x => { last := x.last, cost := x.cost, doc := Doc.nest n x.doc, x := x.x, y := x.y }) printed_ms = ms) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W

h_now: ¬printed_ms = [] m_better, m_better printed_ms m_better.last last✝ Factory.le F m_better.cost cost✝ = true


nest
ms, (¬ms = [] List.map (fun x => { last := x.last, cost := x.cost, doc := Doc.nest n x.doc, x := x.x, y := x.y }) printed_ms = ms) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W

h_now: ¬printed_ms = [] m_better, m_better printed_ms m_better.last last✝ Factory.le F m_better.cost cost✝ = true


nest
(¬List.map (Meas.adjust_nest n) printed_ms = [] List.map (fun x => { last := x.last, cost := x.cost, doc := Doc.nest n x.doc, x := x.x, y := x.y }) printed_ms = List.map (Meas.adjust_nest n) printed_ms) m_better, m_better List.map (Meas.adjust_nest n) printed_ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i, n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left, h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x F.W

h_now: ¬printed_ms = [] m_better, m_better printed_ms m_better.last last✝ Factory.le F m_better.cost cost✝ = true


nest
¬printed_ms = [] a, a printed_ms a.last last✝ Factory.le F a.cost cost✝ = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

n:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.nest n w✝) c i m

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

h_widen: Widen (Doc.align d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

L✝: List Doc

h✝: Widen d L✝

h_mem: d_choiceless List.map (fun d => Doc.align d) L✝


align
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

h_widen: Widen (Doc.align d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

L✝: List Doc

h_widen: Widen d L✝

h_mem: d_choiceless List.map (fun d => Doc.align d) L✝


align
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

h_widen: Widen (Doc.align d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

L✝: List Doc

h_widen: Widen d L✝

h_mem: a, a L✝ Doc.align a = d_choiceless


align
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

h_widen: Widen (Doc.align d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

L✝: List Doc

h_widen: Widen d L✝

h_mem: a, a L✝ Doc.align a = d_choiceless

w✝: Doc

h_left: w✝ L✝

h_right: Doc.align w✝ = d_choiceless


align
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

h_widen: Widen (Doc.align d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝


align
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

h_widen: Widen (Doc.align d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝


align
ms, (x, ml = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

h_widen: Widen (Doc.align d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms✝: MeasureSet

h✝: Resolve F d c c ms✝

h_bad✝: i > F.W


align.align_taint
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms✝: MeasureSet

h✝: Resolve F d c c ms✝

h_ok✝: i F.W


align.align
ms, (x, MeasureSet.lift (Meas.adjust_align i) ms✝ = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

h_widen: Widen (Doc.align d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h': Resolve F d c c ms'

h_ok✝: i F.W


ms, (x, MeasureSet.lift (Meas.adjust_align i) ms' = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

ms': MeasureSet

h': Resolve F d c c ms'

h_ok✝: i F.W

h_mem: w✝ L✝


ms, (x, MeasureSet.lift (Meas.adjust_align i) ms' = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h': Resolve F d c c ms'

h_ok✝: i F.W


ms, (x, MeasureSet.lift (Meas.adjust_align i) ms' = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)


tainted
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

ms✝: List Meas

h✝: ms✝ []

h': Resolve F d c c (MeasureSet.set ms✝ h✝)


set
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h': Resolve F d c c ms'

h_ok✝: i F.W


ms, (x, MeasureSet.lift (Meas.adjust_align i) ms' = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h✝: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W


align
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W


align
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W


align
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W


align
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W


MeasRender F w✝ c c ?m.53971

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W

this: { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.y F.W{ last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.x F.Wms h, MeasureSet.tainted m✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ } = true


align
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_x: x✝ F.W

this: y✝ F.Wx✝ F.WFalse

h_y: i F.W y✝ F.W


align
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_x: x✝ F.W

this: y✝ F.Wx✝ F.WFalse

h_y✝: i F.W y✝ F.W

left✝: i F.W

h_y: y✝ F.W


align
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

m✝: Meas

h': Resolve F d c c (MeasureSet.tainted m✝)


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h': Resolve F d c c ms'

h_ok✝: i F.W


ms, (x, MeasureSet.lift (Meas.adjust_align i) ms' = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')


ms, (¬ms = [] List.map (Meas.adjust_align i) printed_ms = ms) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h✝: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W


align
ms, (¬ms = [] List.map (Meas.adjust_align i) printed_ms = ms) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W


align
ms, (¬ms = [] List.map (Meas.adjust_align i) printed_ms = ms) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W

h_now: { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.y F.W{ last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.x F.Wms h, MeasureSet.set printed_ms h_render' = MeasureSet.set ms h m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ } = true


align
ms, (¬ms = [] List.map (Meas.adjust_align i) printed_ms = ms) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_x: x✝ F.W

h_now: y✝ F.Wx✝ F.W¬printed_ms = [] m_better, m_better printed_ms m_better.last last✝ Factory.le F m_better.cost cost✝ = true

h_y: i F.W y✝ F.W


align
ms, (¬ms = [] List.map (Meas.adjust_align i) printed_ms = ms) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_x: x✝ F.W

h_now: y✝ F.Wx✝ F.W¬printed_ms = [] m_better, m_better printed_ms m_better.last last✝ Factory.le F m_better.cost cost✝ = true

h_y✝: i F.W y✝ F.W

left✝: i F.W

h_y: y✝ F.W


align
ms, (¬ms = [] List.map (Meas.adjust_align i) printed_ms = ms) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_x: x✝ F.W

h_y✝: i F.W y✝ F.W

left✝: i F.W

h_y: y✝ F.W

h_now: ¬printed_ms = [] m_better, m_better printed_ms m_better.last last✝ Factory.le F m_better.cost cost✝ = true


align
ms, (¬ms = [] List.map (Meas.adjust_align i) printed_ms = ms) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_x: x✝ F.W

h_y✝: i F.W y✝ F.W

left✝: i F.W

h_y: y✝ F.W

h_now: ¬printed_ms = [] m_better, m_better printed_ms m_better.last last✝ Factory.le F m_better.cost cost✝ = true


align
(¬List.map (Meas.adjust_align i) printed_ms = [] List.map (Meas.adjust_align i) printed_ms = List.map (Meas.adjust_align i) printed_ms) m_better, m_better List.map (Meas.adjust_align i) printed_ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_x: x✝ F.W

h_y✝: i F.W y✝ F.W

left✝: i F.W

h_y: y✝ F.W

h_now: ¬printed_ms = [] m_better, m_better printed_ms m_better.last last✝ Factory.le F m_better.cost cost✝ = true


align
¬printed_ms = [] a, a printed_ms a.last last✝ Factory.le F a.cost cost✝ = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_ok✝: i F.W

h_mem: w✝ L✝

printed_ms: List Meas

h_render': printed_ms []

h': Resolve F d c c (MeasureSet.set printed_ms h_render')


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d: Doc

h_print: Resolve F (Doc.align d) c i ml

h_widen: Widen (Doc.align d) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h: Resolve F d c c ms'

h_bad: i > F.W


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h: Resolve F d c c ms'

h_bad: i > F.W

last✝:

cost✝: α✝

x✝, y✝:

h✝: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W


align
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h: Resolve F d c c ms'

h_bad: i > F.W


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h: Resolve F d c c ms'

h_bad: i > F.W

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y F.W

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W


align
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h: Resolve F d c c ms'

h_bad: i > F.W


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h: Resolve F d c c ms'

h_bad: i > F.W

last✝:

cost✝: α✝

x✝, y✝:

h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }

h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x F.W

h_y: i F.W y✝ F.W


align
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h: Resolve F d c c ms'

h_bad: i > F.W


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

i:

w✝: Doc

ms': MeasureSet

h_bad: i > F.W

last✝:

cost✝: α✝

x✝, y✝:

h_y: i F.W y✝ F.W


align
ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = true
α✝: Type

F: Factory α✝

d✝: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d: Doc

L✝: List Doc

h_widen: Widen d L✝

w✝: Doc

h_left: w✝ L✝

h_render: MeasRender F (Doc.align w✝) c i m

h_mem: a, a L✝ Doc.align a = Doc.align w✝

ms': MeasureSet

h: Resolve F d c c ms'

h_bad: i > F.W


ms, (x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.choice d₁ d₂) c i ml

h_widen: Widen (Doc.choice d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.choice d₁ d₂) c i ml

L₁✝, L₂✝: List Doc

h₁✝: Widen d₁ L₁✝

h₂✝: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ ++ L₂✝


choice
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.choice d₁ d₂) c i ml

h_widen: Widen (Doc.choice d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.choice d₁ d₂) c i ml

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ ++ L₂✝


choice
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.choice d₁ d₂) c i ml

h_widen: Widen (Doc.choice d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.choice d₁ d₂) c i ml

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝


choice
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.choice d₁ d₂) c i ml

h_widen: Widen (Doc.choice d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms✝, ms'✝: MeasureSet

h_left✝: Resolve F d₁ c i ms✝

h_right✝: Resolve F d₂ c i ms'✝


choice.choice
ms h, MeasureSet.union F ms✝ ms'✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.choice d₁ d₂) c i ml

h_widen: Widen (Doc.choice d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms₁, ms₂: MeasureSet

h_left: Resolve F d₁ c i ms₁

h_right: Resolve F d₂ c i ms₂


ms h, MeasureSet.union F ms₁ ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)


tainted
ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)


set
ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms₁, ms₂: MeasureSet

h_left: Resolve F d₁ c i ms₁

h_right: Resolve F d₂ c i ms₂


ms h, MeasureSet.union F ms₁ ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h✝: d_choiceless L₁✝


inl
ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h✝: d_choiceless L₂✝


inr
ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₁✝


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₁✝


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₁✝


MeasRender F d_choiceless c i ?m.94380

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.tainted m✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₁✝


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.tainted m✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

w✝¹: List Meas

w✝: w✝¹ []

left✝: MeasureSet.tainted m✝ = MeasureSet.set w✝¹ w✝

right✝: m_better, m_better w✝¹ dominates F m_better m = true


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₁✝


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₂✝


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₂✝


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₂✝


MeasRender F d_choiceless c i ?m.98688

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₂✝

this: m.y F.Wm.x F.Wms h, ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₂✝


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right✝: Resolve F d₂ c i ms₂

m✝: Meas

h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₂✝

this: m.y F.Wm.x F.Wms h, ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms: List Meas

w✝: ms []

h_left: ms₂ = MeasureSet.set ms w✝

h_right: m_better, m_better ms dominates F m_better m = true


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₂✝


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₂✝

ms: List Meas

w✝: ms []

h_right✝: m_better, m_better ms dominates F m_better m = true

h_right: Resolve F d₂ c i (MeasureSet.set ms w✝)

this: m.y F.Wm.x F.Wms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m = true


ms_1 h, MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms w✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₂✝


ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₂✝

ms: List Meas

w✝: ms []

h_right✝: m_better, m_better ms dominates F m_better m = true

h_right: Resolve F d₂ c i (MeasureSet.set ms w✝)

this: m.y F.Wm.x F.Wms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m = true


ms_1 h, MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms w✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

m✝: Meas

h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)

h_mem: d_choiceless L₂✝

ms: List Meas

w✝: ms []

h_right✝: m_better, m_better ms dominates F m_better m = true

h_right: Resolve F d₂ c i (MeasureSet.set ms w✝)

this: m.y F.Wm.x F.Wms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m = true


ms []

Goals accomplished! 🐙

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms₁, ms₂: MeasureSet

h_left: Resolve F d₁ c i ms₁

h_right: Resolve F d₂ c i ms₂


ms h, MeasureSet.union F ms₁ ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)

h✝: d_choiceless L₁✝


inl
ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝¹) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)

h✝: d_choiceless L₂✝


inr
ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝¹) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝


MeasRender F d_choiceless c i ?m.105593

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)


tainted
ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)


set
ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)


¬ms✝ = [] m_better, m_better ms✝ dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_right': m_better, m_better ms_left dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)

h_left': ms✝ = ms_left


¬ms✝ = [] m_better, m_better ms✝ dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)

w✝: ms✝ []

h_right': m_better, m_better ms✝ dominates F m_better m = true


¬ms✝ = [] m_better, m_better ms✝ dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)

w✝: ms✝ []

h_right': m_better, m_better ms✝ dominates F m_better m = true


left
¬ms✝ = []
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)

w✝: ms✝ []

h_right': m_better, m_better ms✝ dominates F m_better m = true


right
m_better, m_better ms✝ dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)

w✝: ms✝ []

h_right': m_better, m_better ms✝ dominates F m_better m = true


¬ms✝ = [] m_better, m_better ms✝ dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)

w✝: ms✝ []

h_right': m_better, m_better ms✝ dominates F m_better m = true


left
¬ms✝ = []
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)

w✝: ms✝ []

h_right': m_better, m_better ms✝ dominates F m_better m = true


right
m_better, m_better ms✝ dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)

w✝: ms✝ []

h_right': m_better, m_better ms✝ dominates F m_better m = true


¬ms✝ = [] m_better, m_better ms✝ dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₁✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


¬merge F (ms✝¹, ms✝) = [] m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


left
¬merge F (ms✝¹, ms✝) = []
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


right
m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


¬merge F (ms✝¹, ms✝) = []
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


h
ms✝¹ [] ms✝ []
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


¬merge F (ms✝¹, ms✝) = []

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

right✝: dominates F m_better m = true

w✝: ms✝¹ []

h_right': m_better, m_better ms✝¹ dominates F m_better m = true

h_mem_b: m_better ms✝¹


refl
m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem✝: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better✝: Meas

right✝: dominates F m_better✝ m = true

w✝: ms✝¹ []

h_right': m_better, m_better ms✝¹ dominates F m_better m = true

h_mem_b: m_better✝ ms✝¹

m_better: Meas

h_mem: m_better merge F (ms✝¹, ms✝)

h_dom: dominates F m_better m_better✝ = true


refl
m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem✝: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better✝: Meas

right✝: dominates F m_better✝ m = true

w✝: ms✝¹ []

h_right': m_better, m_better ms✝¹ dominates F m_better m = true

h_mem_b: m_better✝ ms✝¹

m_better: Meas

h_mem: m_better merge F (ms✝¹, ms✝)

h_dom: dominates F m_better m_better✝ = true


refl
m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem✝: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better✝: Meas

right✝: dominates F m_better✝ m = true

w✝: ms✝¹ []

h_right': m_better, m_better ms✝¹ dominates F m_better m = true

h_mem_b: m_better✝ ms✝¹

m_better: Meas

h_mem: m_better merge F (ms✝¹, ms✝)

h_dom: dominates F m_better m_better✝ = true


refl
dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms_left: List Meas

w✝: ms_left []

h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝

h_right': m_better, m_better ms_left dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better: Meas

h_mem_b: m_better ms_left

right✝: dominates F m_better m = true


m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem✝: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better✝: Meas

right✝: dominates F m_better✝ m = true

w✝: ms✝¹ []

h_right': m_better, m_better ms✝¹ dominates F m_better m = true

h_mem_b: m_better✝ ms✝¹

m_better: Meas

h_mem: m_better merge F (ms✝¹, ms✝)

h_dom: dominates F m_better m_better✝ = true


refl
dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem✝: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better✝: Meas

right✝: dominates F m_better✝ m = true

w✝: ms✝¹ []

h_right': m_better, m_better ms✝¹ dominates F m_better m = true

h_mem_b: m_better✝ ms✝¹

m_better: Meas

h_mem: m_better merge F (ms✝¹, ms✝)

h_dom: dominates F m_better m_better✝ = true


refl.h
dominates F m_better ?refl.m₂ = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem✝: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better✝: Meas

right✝: dominates F m_better✝ m = true

w✝: ms✝¹ []

h_right': m_better, m_better ms✝¹ dominates F m_better m = true

h_mem_b: m_better✝ ms✝¹

m_better: Meas

h_mem: m_better merge F (ms✝¹, ms✝)

h_dom: dominates F m_better m_better✝ = true


refl.h'
dominates F ?refl.m₂ m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem✝: d_choiceless L₁✝

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

m_better✝: Meas

right✝: dominates F m_better✝ m = true

w✝: ms✝¹ []

h_right': m_better, m_better ms✝¹ dominates F m_better m = true

h_mem_b: m_better✝ ms✝¹

m_better: Meas

h_mem: m_better merge F (ms✝¹, ms✝)

h_dom: dominates F m_better m_better✝ = true


refl.m₂
Meas

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless L₁✝ d_choiceless L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₂✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₂✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₂✝


MeasRender F d_choiceless c i ?m.131477

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₂✝

this: m.y F.Wm.x F.Wms h, ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₂✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₂✝

this: m.y F.Wm.x F.Wms h, ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

w✝¹: List Meas

w✝: w✝¹ []

h_left': ms₂ = MeasureSet.set w✝¹ w✝

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₂✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.tainted m✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.tainted m✝ = MeasureSet.set w✝¹ w✝


tainted
ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


set
ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₂✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

m✝: Meas

h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.tainted m✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.tainted m✝ = MeasureSet.set w✝¹ w✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms₂: MeasureSet

h_right: Resolve F d₂ c i ms₂

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)

h_mem: d_choiceless L₂✝


ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


¬merge F (ms✝¹, ms✝) = [] m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


left
¬merge F (ms✝¹, ms✝) = []
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


right
m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


¬merge F (ms✝¹, ms✝) = []
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


h
ms✝¹ [] ms✝ []
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


¬merge F (ms✝¹, ms✝) = []

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

h✝: w✝¹ []

h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true


refl
m_better, m_better merge F (ms✝, w✝¹) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)

h_mem✝: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better✝: Meas

h_mem_b: m_better✝ w✝¹

right✝: dominates F m_better✝ m = true

h✝: w✝¹ []

h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m_better: Meas

h_mem: m_better merge F (ms✝, w✝¹)

h_dom: dominates F m_better m_better✝ = true


refl
m_better, m_better merge F (ms✝, w✝¹) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)

h_mem✝: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better✝: Meas

h_mem_b: m_better✝ w✝¹

right✝: dominates F m_better✝ m = true

h✝: w✝¹ []

h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m_better: Meas

h_mem: m_better merge F (ms✝, w✝¹)

h_dom: dominates F m_better m_better✝ = true


refl
m_better merge F (ms✝, w✝¹) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)

h_mem✝: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better✝: Meas

h_mem_b: m_better✝ w✝¹

right✝: dominates F m_better✝ m = true

h✝: w✝¹ []

h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m_better: Meas

h_mem: m_better merge F (ms✝, w✝¹)

h_dom: dominates F m_better m_better✝ = true


refl
dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)

h_mem: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better: Meas

h_mem_b: m_better w✝¹

right✝: dominates F m_better m = true

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝


m_better, m_better merge F (ms✝¹, ms✝) dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)

h_mem✝: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better✝: Meas

h_mem_b: m_better✝ w✝¹

right✝: dominates F m_better✝ m = true

h✝: w✝¹ []

h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m_better: Meas

h_mem: m_better merge F (ms✝, w✝¹)

h_dom: dominates F m_better m_better✝ = true


refl
dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)

h_mem✝: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better✝: Meas

h_mem_b: m_better✝ w✝¹

right✝: dominates F m_better✝ m = true

h✝: w✝¹ []

h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m_better: Meas

h_mem: m_better merge F (ms✝, w✝¹)

h_dom: dominates F m_better m_better✝ = true


refl.h
dominates F m_better ?refl.m₂ = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)

h_mem✝: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better✝: Meas

h_mem_b: m_better✝ w✝¹

right✝: dominates F m_better✝ m = true

h✝: w✝¹ []

h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m_better: Meas

h_mem: m_better merge F (ms✝, w✝¹)

h_dom: dominates F m_better m_better✝ = true


refl.h'
dominates F ?refl.m₂ m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)

h_mem✝: d_choiceless L₂✝

w✝¹: List Meas

w✝: w✝¹ []

m_better✝: Meas

h_mem_b: m_better✝ w✝¹

right✝: dominates F m_better✝ m = true

h✝: w✝¹ []

h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)

this: m.y F.Wm.x F.Wms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

m_better: Meas

h_mem: m_better merge F (ms✝, w✝¹)

h_dom: dominates F m_better m_better✝ = true


refl.m₂
Meas

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

h_widen: Widen (Doc.concat d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_print: Resolve F d c i ml

h_widen: Widen d D

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

L₁✝, L₂✝: List Doc

h₁✝: Widen d₁ L₁✝

h₂✝: Widen d₂ L₂✝

h_mem: d_choiceless List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝)


concat
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

h_widen: Widen (Doc.concat d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: d_choiceless List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝)


concat
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

h_widen: Widen (Doc.concat d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: a, a L₁✝ a_1, a_1 L₂✝ Doc.concat a a_1 = d_choiceless


concat
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

h_widen: Widen (Doc.concat d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

h_mem: a, a L₁✝ a_1, a_1 L₂✝ Doc.concat a a_1 = d_choiceless

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_concat: Doc.concat d_left d_right = d_choiceless


concat
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

h_widen: Widen (Doc.concat d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d_choiceless: Doc

m: Meas

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_concat: Doc.concat d_left d_right = d_choiceless


concat
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

h_widen: Widen (Doc.concat d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m


concat
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

h_widen: Widen (Doc.concat d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint✝: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right✝: Resolve F d₂ m✝.last i ms'✝

h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝)


concat.concat_taint
ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

ms✝: List Meas

h_non_empty✝: ms✝ []

h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)

h✝: ResolveConcat F ms✝ d₂ i ml


concat.concat_set
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

h_widen: Widen (Doc.concat d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right': Resolve F d₂ m✝.last i ms'✝

h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right': Resolve F d₂ m✝.last i ms'✝

h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)

m₁✝, m₂✝: Meas

h₂✝: MeasRender F d_right m₁✝.last i m₂✝

h₁✝: MeasRender F d_left c i m₁✝

h✝: m = Meas.concat F m₁✝ m₂✝


concat
ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right': Resolve F d₂ m✝.last i ms'✝

h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right': Resolve F d₂ m✝.last i ms'✝

h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)

m₁✝, m₂✝: Meas

hh_right: MeasRender F d_right m₁✝.last i m₂✝

hh_left: MeasRender F d_left c i m₁✝

hh: m = Meas.concat F m₁✝ m₂✝


concat
ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right': Resolve F d₂ m✝.last i ms'✝

h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right': Resolve F d₂ m✝.last i ms'✝

h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)

m₁✝, m₂✝: Meas

hh_right: MeasRender F d_right m₁✝.last i m₂✝

hh_left: MeasRender F d_left c i m₁✝

h_y: (Meas.concat F m₁✝ m₂✝).y F.W

h_x: (Meas.concat F m₁✝ m₂✝).x F.W


concat
ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁✝ m₂✝) = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right': Resolve F d₂ m✝.last i ms'✝

h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right': Resolve F d₂ m✝.last i ms'✝

h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)

m₁✝, m₂✝: Meas

hh_right: MeasRender F d_right m₁✝.last i m₂✝

hh_left: MeasRender F d_left c i m₁✝

h_y: m₁✝.y F.W m₂✝.y F.W

h_x: m₁✝.x F.W m₂✝.x F.W


concat
ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁✝ m₂✝) = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right': Resolve F d₂ m✝.last i ms'✝

h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right': Resolve F d₂ m✝.last i ms'✝

h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)

m₁✝, m₂✝: Meas

hh_right: MeasRender F d_right m₁✝.last i m₂✝

hh_left: MeasRender F d_left c i m₁✝

h_y: m₁✝.y F.W m₂✝.y F.W

h_x: m₁✝.x F.W m₂✝.x F.W

w✝¹: List Meas

w✝: w✝¹ []

left✝: MeasureSet.tainted m✝ = MeasureSet.set w✝¹ w✝

right✝: m_better, m_better w✝¹ dominates F m_better m₁✝ = true


concat
ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁✝ m₂✝) = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right': Resolve F d₂ m✝.last i ms'✝

h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)


ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

D: List Doc

d_choiceless: Doc

m: Meas

h_mem: d_choiceless D

h_render: MeasRender F d_choiceless c i m

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

h_print: Resolve F (Doc.concat d₁ d₂) c i ml

h_widen: Widen (Doc.concat d₁ d₂) D


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁✝, m₂✝: Meas

h₂✝: MeasRender F d_right m₁✝.last i m₂✝

h₁✝: MeasRender F d_left c i m₁✝

h✝: m = Meas.concat F m₁✝ m₂✝


concat
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

hh: m = Meas.concat F m₁ m₂


concat
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_y: (Meas.concat F m₁ m₂).y F.W

h_x: (Meas.concat F m₁ m₂).x F.W


concat
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W


concat
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

ms_left: List Meas

h_mem_left: ms_left []

h_eq: MeasureSet.set ms h_non_empty = MeasureSet.set ms_left h_mem_left

m_better: Meas

h_mem': m_better ms_left

h_dom: dominates F m_better m₁ = true


concat
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

m: Meas

h_y: m.y F.W

h_x: m.x F.W

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

h_render: MeasRender F (Doc.concat d_left d_right) c i m

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_print
ResolveConcat F ?concat.refl.ms ?concat.refl.d₂ ?concat.refl.i ml
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_widen
Widen ?concat.refl.d₂ ?concat.refl.L₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_choiceless
?concat.refl.d_right ?concat.refl.L₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_render
MeasRender F ?concat.refl.d_right m₁.last ?concat.refl.i m₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_x
m₁.x F.W m₂.x F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_y
m₁.y F.W m₂.y F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_dom
dominates F ?concat.refl.m_better_left m₁ = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_mem
?concat.refl.m_better_left ?concat.refl.ms
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.ms
List Meas
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.d₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.i
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.L₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.d_right
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.m_better_left
Meas
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_print
ResolveConcat F ?concat.refl.ms ?concat.refl.d₂ ?concat.refl.i ml
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_widen
Widen ?concat.refl.d₂ ?concat.refl.L₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_choiceless
?concat.refl.d_right ?concat.refl.L₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_render
MeasRender F ?concat.refl.d_right m₁.last ?concat.refl.i m₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_x
m₁.x F.W m₂.x F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_y
m₁.y F.W m₂.y F.W
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_dom
dominates F ?concat.refl.m_better_left m₁ = true
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.h_mem
?concat.refl.m_better_left ?concat.refl.ms
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.ms
List Meas
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.d₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.i
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.L₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.d_right
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl.m_better_left
Meas
α✝: Type

F: Factory α✝

d: Doc

c, i:

ml: MeasureSet

d₁, d₂: Doc

L₁✝, L₂✝: List Doc

h_widen₁: Widen d₁ L₁✝

h_widen₂: Widen d₂ L₂✝

d_left: Doc

h_left: d_left L₁✝

d_right: Doc

h_right: d_right L₂✝

ms: List Meas

h_non_empty: ms []

h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)

h_right': ResolveConcat F ms d₂ i ml

m₁, m₂: Meas

hh_right: MeasRender F d_right m₁.last i m₂

hh_left: MeasRender F d_left c i m₁

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

m_better: Meas

h_dom: dominates F m_better m₁ = true

h_mem_left: ms []

h_mem': m_better ms


concat.refl
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
theorem
ResolveConcat_optimal: ∀ {α : Type} {F : Factory α} {ms : List Meas} {d₂ : Doc} {i : } {ml : MeasureSet} {L₂ : List Doc} {d_right : Doc} {m₂ m_better_left m₁ : Meas}, ResolveConcat F ms d₂ i mlWiden d₂ L₂d_right L₂MeasRender F d_right m₁.last i m₂m₁.x F.W m₂.x F.Wm₁.y F.W m₂.y F.Wdominates F m_better_left m₁ = truem_better_left msms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
ResolveConcat_optimal
(
h_print: ResolveConcat F ms d₂ i ml
h_print
:
ResolveConcat: {α : Type} → Factory αList MeasDocMeasureSetProp
ResolveConcat
F: ?m.309
F
ms: ?m.316
ms
d₂: ?m.323
d₂
i: ?m.329
i
ml: ?m.335
ml
) (
h_widen: Widen d₂ L₂
h_widen
:
Widen: DocList DocProp
Widen
d₂: ?m.323
d₂
L₂: ?m.344
L₂
) (
h_choiceless: d_right L₂
h_choiceless
:
d_right: ?m.369
d_right
L₂: ?m.344
L₂
) (
h_render: MeasRender F d_right (sorryAx true) i m₂
h_render
:
MeasRender: {α : Type} → Factory αDocMeasProp
MeasRender
F: ?m.309
F
d_right: ?m.369
d_right
m₁: ?m.554
m₁
m₁.last:
.
last: {α : Type} → Meas
last
i: ?m.329
i
m₂: ?m.408
m₂
) (
h_x: m₁.x F.W m₂.x F.W
h_x
:
m₁: ?m.554
m₁
m₁.x: unknown metavariable '?_uniq.522'
.
x: {α : Type} → Meas
x
F: ?m.309
F
.
W: {α : Type} → Factory α
W
m₂: ?m.408
m₂
.
x: {α : Type} → Meas
x
F: ?m.309
F
.
W: {α : Type} → Factory α
W
) (
h_y: m₁.y F.W m₂.y F.W
h_y
:
m₁: ?m.554
m₁
m₁.y: unknown metavariable '?_uniq.538'
.
y: {α : Type} → Meas
y
F: ?m.309
F
.
W: {α : Type} → Factory α
W
m₂: ?m.408
m₂
.
y: {α : Type} → Meas
y
F: ?m.309
F
.
W: {α : Type} → Factory α
W
) (
h_dom: dominates F m_better_left m₁ = true
h_dom
:
dominates: {α : Type} → Factory αMeasMeasBool
dominates
F: ?m.309
F
m_better_left: ?m.483
m_better_left
m₁: ?m.554
m₁
) (
h_mem: m_better_left ms
h_mem
:
m_better_left: ?m.483
m_better_left
ms: ?m.316
ms
) : ∃
ms: ?m.669
ms
h: ?m.674
h
,
ml: ?m.335
ml
=
MeasureSet.set: {α : Type} → (ms : List Meas) → ms []MeasureSet
MeasureSet.set
ms: ?m.669
ms
h: ?m.674
h
∧ ∃
m_better: ?m.708
m_better
,
m_better: ?m.708
m_better
ms: ?m.669
ms
dominates: {α : Type} → Factory αMeasMeasBool
dominates
F: ?m.309
F
m_better: ?m.708
m_better
(
Meas.concat: {α : Type} → Factory αMeasMeasMeas
Meas.concat
F: ?m.309
F
m₁: ?m.554
m₁
m₂: ?m.408
m₂
) :=

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

ms: List Meas

d₂: Doc

i:

ml: MeasureSet

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_print: ResolveConcat F ms d₂ i ml

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

h_mem: m_better_left ms


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

ml: MeasureSet

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

m✝: Meas

h_mem: m_better_left [m✝]

h_current✝: ResolveConcatOne F d₂ m✝ i ml


one
ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr✝: MeasureSet

m✝: Meas

msr'✝: MeasureSet

h_mem: m_better_left m✝ :: ms✝

h_rest✝: ResolveConcat F ms✝ d₂ i msr✝

h_current✝: ResolveConcatOne F d₂ m✝ i msr'✝


cons
ms h, MeasureSet.union F msr'✝ msr✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

ms: List Meas

d₂: Doc

i:

ml: MeasureSet

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_print: ResolveConcat F ms d₂ i ml

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

h_mem: m_better_left ms


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

ml: MeasureSet

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

m✝: Meas

h_mem: m_better_left [m✝]

h_print: ResolveConcatOne F d₂ m✝ i ml


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

ml: MeasureSet

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

m✝: Meas

h_print: ResolveConcatOne F d₂ m✝ i ml

h_mem: m_better_left = m✝


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

ml: MeasureSet

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

m✝: Meas

h_mem: m_better_left [m✝]

h_print: ResolveConcatOne F d₂ m✝ i ml


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

ml: MeasureSet

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

h_print: ResolveConcatOne F d₂ m_better_left i ml


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

ml: MeasureSet

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

m✝: Meas

h_mem: m_better_left [m✝]

h_print: ResolveConcatOne F d₂ m✝ i ml


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

ms: List Meas

d₂: Doc

i:

ml: MeasureSet

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_print: ResolveConcat F ms d₂ i ml

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

h_mem: m_better_left ms


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr': MeasureSet

the_m: Meas

msr: MeasureSet

h_mem: m_better_left the_m :: ms✝

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ the_m i msr


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr', msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ m_better_left i msr


head
ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr': MeasureSet

the_m: Meas

msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ the_m i msr

a✝: List.Mem m_better_left ms✝


tail
ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr': MeasureSet

the_m: Meas

msr: MeasureSet

h_mem: m_better_left the_m :: ms✝

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ the_m i msr


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr', msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ m_better_left i msr


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr', msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ m_better_left i msr

this: ms h, msr = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr', msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ m_better_left i msr


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr', msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ m_better_left i msr

this: ms h, msr = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

ms: List Meas

w✝: ms []

h_eq: msr = MeasureSet.set ms w✝

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr', msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ m_better_left i msr


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr': MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true


ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) msr' = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr', msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ m_better_left i msr


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

m✝: Meas

h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)


tainted
ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.tainted m✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)


set
ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr', msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ m_better_left i msr


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

m✝: Meas

h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.tainted m✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

m✝: Meas

h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.tainted m✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

m✝: Meas

h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)


ms []

Goals accomplished! 🐙

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr', msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ m_better_left i msr


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms


ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


¬merge F (ms, ms✝) = [] m_better, m_better merge F (ms, ms✝) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


left
¬merge F (ms, ms✝) = []
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


right
m_better, m_better merge F (ms, ms✝) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


¬merge F (ms, ms✝) = []
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


h
ms [] ms✝ []
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


¬merge F (ms, ms✝) = []

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


m_better, m_better merge F (ms, ms✝) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝

m: Meas

hh: m ms dominates F m (Meas.concat F m₁ m₂) = true


m_better, m_better merge F (ms, ms✝) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


m_better, m_better merge F (ms, ms✝) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝

m: Meas

hh: m ms dominates F m (Meas.concat F m₁ m₂) = true

mm: Meas

hhh: mm merge F (ms, ms✝) dominates F mm m = true


m_better, m_better merge F (ms, ms✝) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


m_better, m_better merge F (ms, ms✝) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝

m: Meas

hh: m ms dominates F m (Meas.concat F m₁ m₂) = true

mm: Meas

hhh: mm merge F (ms, ms✝) dominates F mm m = true


mm merge F (ms, ms✝) dominates F mm (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


m_better, m_better merge F (ms, ms✝) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝

m: Meas

hh: m ms dominates F m (Meas.concat F m₁ m₂) = true

mm: Meas

hhh: mm merge F (ms, ms✝) dominates F mm m = true


dominates F mm (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


m_better, m_better merge F (ms, ms✝) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝

m: Meas

hh: m ms dominates F m (Meas.concat F m₁ m₂) = true

mm: Meas

hhh: mm merge F (ms, ms✝) dominates F mm m = true


h
dominates F mm ?m₂ = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝

m: Meas

hh: m ms dominates F m (Meas.concat F m₁ m₂) = true

mm: Meas

hhh: mm merge F (ms, ms✝) dominates F mm m = true


h'
dominates F ?m₂ (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝

m: Meas

hh: m ms dominates F m (Meas.concat F m₁ m₂) = true

mm: Meas

hhh: mm merge F (ms, ms✝) dominates F mm m = true


m₂
Meas
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


m_better, m_better merge F (ms, ms✝) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝

m: Meas

hh: m ms dominates F m (Meas.concat F m₁ m₂) = true

mm: Meas

hhh: mm merge F (ms, ms✝) dominates F mm m = true


h
dominates F mm ?m₂ = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝

m: Meas

hh: m ms dominates F m (Meas.concat F m₁ m₂) = true

mm: Meas

hhh: mm merge F (ms, ms✝) dominates F mm m = true


h'
dominates F ?m₂ (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝

m: Meas

hh: m ms dominates F m (Meas.concat F m₁ m₂) = true

mm: Meas

hhh: mm merge F (ms, ms✝) dominates F mm m = true


m₂
Meas

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝


m_better, m_better merge F (ms, ms✝) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹, ms: List Meas

w✝: ms []

h_other: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)

this: ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms

h_pareto': pareto F ms✝

m: Meas

hh: m ms dominates F m (Meas.concat F m₁ m₂) = true

mm: Meas

hhh: mm merge F (ms, ms✝) dominates F mm m = true


h'
dominates F m (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr': MeasureSet

the_m: Meas

msr: MeasureSet

h_mem: m_better_left the_m :: ms✝

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ the_m i msr


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr': MeasureSet

the_m: Meas

msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ the_m i msr

h_mem: List.Mem m_better_left ms✝


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr': MeasureSet

the_m: Meas

msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ the_m i msr

h_mem: List.Mem m_better_left ms✝

ms: List Meas

h_non_empty: ms []

h₁: msr' = MeasureSet.set ms h_non_empty

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr': MeasureSet

the_m: Meas

msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ the_m i msr

h_mem: List.Mem m_better_left ms✝


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

the_m: Meas

msr: MeasureSet

h_print: ResolveConcatOne F d₂ the_m i msr

h_mem: List.Mem m_better_left ms✝

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h_non_empty)


ms_1 h, MeasureSet.union F msr (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr': MeasureSet

the_m: Meas

msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ the_m i msr

h_mem: List.Mem m_better_left ms✝


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h_non_empty)

m✝: Meas

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.tainted m✝)


tainted
ms_1 h, MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)


set
ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr': MeasureSet

the_m: Meas

msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ the_m i msr

h_mem: List.Mem m_better_left ms✝


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h_non_empty)

m✝: Meas

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.tainted m✝)


ms_1 h, MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h_non_empty)

m'✝: Meas

h✝: Resolve F d₂ the_m.last i (MeasureSet.tainted m'✝)


tainted
ms_1 h, MeasureSet.union F (MeasureSet.tainted (Meas.concat F the_m m'✝)) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h_non_empty)

m✝: Meas

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.tainted m✝)


ms_1 h, MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝: List Meas

msr': MeasureSet

the_m: Meas

msr: MeasureSet

h_rest: ResolveConcat F ms✝ d₂ i msr'

h_print: ResolveConcatOne F d₂ the_m i msr

h_mem: List.Mem m_better_left ms✝


ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


¬merge F (ms✝, ms) = [] m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


left
¬merge F (ms✝, ms) = []
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


right
m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


¬merge F (ms✝, ms) = []
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


h
ms✝ [] ms []
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


¬merge F (ms✝, ms) = []

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)


ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝


?m.195180 ms
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝


?m.195180 ms
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝


?m.195180 ms

Goals accomplished! 🐙

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝

this: m_better_1, m_better_1 merge F (ms✝, ms) dominates F m_better_1 m_better = true


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝

this: m_better_1, m_better_1 merge F (ms✝, ms) dominates F m_better_1 m_better = true

mm: Meas

hh: mm merge F (ms✝, ms) dominates F mm m_better = true


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝

this: m_better_1, m_better_1 merge F (ms✝, ms) dominates F m_better_1 m_better = true

mm: Meas

hh: mm merge F (ms✝, ms) dominates F mm m_better = true


mm merge F (ms✝, ms) dominates F mm (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝

this: m_better_1, m_better_1 merge F (ms✝, ms) dominates F m_better_1 m_better = true

mm: Meas

hh: mm merge F (ms✝, ms) dominates F mm m_better = true


dominates F mm (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝

this: m_better_1, m_better_1 merge F (ms✝, ms) dominates F m_better_1 m_better = true

mm: Meas

hh: mm merge F (ms✝, ms) dominates F mm m_better = true


h
dominates F mm ?m₂ = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝

this: m_better_1, m_better_1 merge F (ms✝, ms) dominates F m_better_1 m_better = true

mm: Meas

hh: mm merge F (ms✝, ms) dominates F mm m_better = true


h'
dominates F ?m₂ (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝

this: m_better_1, m_better_1 merge F (ms✝, ms) dominates F m_better_1 m_better = true

mm: Meas

hh: mm merge F (ms✝, ms) dominates F mm m_better = true


m₂
Meas
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝

this: m_better_1, m_better_1 merge F (ms✝, ms) dominates F m_better_1 m_better = true

mm: Meas

hh: mm merge F (ms✝, ms) dominates F mm m_better = true


h
dominates F mm ?m₂ = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝

this: m_better_1, m_better_1 merge F (ms✝, ms) dominates F m_better_1 m_better = true

mm: Meas

hh: mm merge F (ms✝, ms) dominates F mm m_better = true


h'
dominates F ?m₂ (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝

this: m_better_1, m_better_1 merge F (ms✝, ms) dominates F m_better_1 m_better = true

mm: Meas

hh: mm merge F (ms✝, ms) dominates F mm m_better = true


m₂
Meas

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto: pareto F ms✝


m_better, m_better merge F (ms✝, ms) dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

d₂: Doc

i:

L₂: List Doc

d_right: Doc

m₂, m_better_left, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better_left m₁ = true

ms✝¹: List Meas

the_m: Meas

h_mem: List.Mem m_better_left ms✝¹

ms: List Meas

h_non_empty: ms []

h₂: m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)

ms✝: List Meas

h✝: ms✝ []

h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)

h_pareto✝: pareto F ms✝

m_better: Meas

h_better: m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

h_pareto': pareto F ms

h_pareto: pareto F ms✝

this: m_better_1, m_better_1 merge F (ms✝, ms) dominates F m_better_1 m_better = true

mm: Meas

hh: mm merge F (ms✝, ms) dominates F mm m_better = true


h'
dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
theorem
ResolveConcatOne_optimal: ∀ {d₂ : Doc} {L₂ : List Doc} {d_right : Doc} {α : Type} {F : Factory α} {m_better : Meas} {i : } {ml : MeasureSet} {m₂ m₁ : Meas}, Widen d₂ L₂d_right L₂ResolveConcatOne F d₂ m_better i mlMeasRender F d_right m₁.last i m₂m₁.x F.W m₂.x F.Wm₁.y F.W m₂.y F.Wdominates F m_better m₁ = truems h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
ResolveConcatOne_optimal
(
h_widen: Widen d₂ L₂
h_widen
:
Widen: DocList DocProp
Widen
d₂: ?m.820
d₂
L₂: ?m.824
L₂
) (
h_choiceless: d_right L₂
h_choiceless
:
d_right: ?m.845
d_right
L₂: ?m.824
L₂
) (
h_print: ResolveConcatOne F d₂ m_better i ml
h_print
:
ResolveConcatOne: {α : Type} → Factory αDocMeasMeasureSetProp
ResolveConcatOne
F: ?m.880
F
d₂: ?m.820
d₂
m_better: ?m.914
m_better
i: ?m.948
i
ml: ?m.981
ml
) (
h_render: MeasRender F d_right ?m.1127 i m₂
h_render
:
MeasRender: {α : Type} → Factory αDocMeasProp
MeasRender
F: ?m.880
F
d_right: ?m.845
d_right
m₁: ?m.1092
m₁
m₁.last:
.
last: {α : Type} → Meas
last
i: ?m.948
i
m₂: ?m.1018
m₂
) (
h_x: unknown metavariable '?_uniq.1057'
h_x
:
m₁: ?m.1092
m₁
m₁.x: unknown metavariable '?_uniq.1057'
.
x: {α : Type} → Meas
x
F: ?m.880
F
.
W: {α : Type} → Factory α
W
m₂: ?m.1018
m₂
.
x: {α : Type} → Meas
x
F: ?m.880
F
.
W: {α : Type} → Factory α
W
) (
h_y: m₁.y F.W m₂.y F.W
h_y
:
m₁: ?m.1092
m₁
m₁.y: unknown metavariable '?_uniq.1076'
.
y: {α : Type} → Meas
y
F: ?m.880
F
.
W: {α : Type} → Factory α
W
m₂: ?m.1018
m₂
.
y: {α : Type} → Meas
y
F: ?m.880
F
.
W: {α : Type} → Factory α
W
) (
h_dom: dominates F m_better m₁ = true
h_dom
:
dominates: {α : Type} → Factory αMeasMeasBool
dominates
F: ?m.880
F
m_better: ?m.914
m_better
m₁: ?m.1092
m₁
) : ∃
ms: ?m.1184
ms
h: ?m.1189
h
,
ml: ?m.981
ml
=
MeasureSet.set: {α : Type} → (ms : List Meas) → ms []MeasureSet
MeasureSet.set
ms: ?m.1184
ms
h: ?m.1189
h
∧ ∃
m_better: ?m.1224
m_better
,
m_better: ?m.1224
m_better
ms: ?m.1184
ms
dominates: {α : Type} → Factory αMeasMeasBool
dominates
F: ?m.880
F
m_better: ?m.1224
m_better
(
Meas.concat: {α : Type} → Factory αMeasMeasMeas
Meas.concat
F: ?m.880
F
m₁: ?m.1092
m₁
m₂: ?m.1018
m₂
) :=

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better


m_better.last m₁.last
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better


m_better.last m₁.last
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better


m_better.last m₁.last
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true


m_better.last m₁.last
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better


m_better.last m₁.last

Goals accomplished! 🐙

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better


i i

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


m_better.last m₁.last
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


m_better.last m₁.last
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


m_better.last m₁.last
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true


m_better.last m₁.last
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


m_better.last m₁.last

Goals accomplished! 🐙

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


i i

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


m₂.x F.W

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true


m₂.y F.W

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

m'✝: Meas

h✝: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)


tainted
ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms✝: List Meas

h_non_empty✝: ms✝ []

h✝: Resolve F d₂ m_better.last i (MeasureSet.set ms✝ h_non_empty✝)


set
ms h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms✝) []) = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

m'✝: Meas

h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)


ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

m'✝: Meas

h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)


ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

m'✝: Meas

h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)


MeasRender F d_right m_better.last i m_result_better

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

m'✝: Meas

h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)

this: ms h, MeasureSet.tainted m'✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m_result_better = true


ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

m'✝: Meas

h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)


ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

m'✝: Meas

h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)

this: ms h, MeasureSet.tainted m'✝ = MeasureSet.set ms h m_better, m_better ms dominates F m_better m_result_better = true

w✝¹: List Meas

w✝: w✝¹ []

left✝: MeasureSet.tainted m'✝ = MeasureSet.set w✝¹ w✝

right✝: m_better, m_better w✝¹ dominates F m_better m_result_better = true


ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

m'✝: Meas

h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)


ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

ml: MeasureSet

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_print: ResolveConcatOne F d₂ m_better i ml

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true


ms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


MeasRender F d_right m_better.last i m_result_better

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

w✝: List Meas

h: w✝ []

h_left: MeasureSet.set ms h_non_empty✝ = MeasureSet.set w✝ h

m_better_right: Meas

h_better_right: m_better_right w✝ dominates F m_better_right m_result_better = true


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true


refl
ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true


refl
ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true


dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true


dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true


dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true


h
List.map (fun m' => Meas.concat F m_better m') ms []
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true


dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []

Goals accomplished! 🐙

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true


refl
MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) m_better_1, m_better_1 dedup F (List.map (fun m' => Meas.concat F m_better m') ms) dominates F m_better_1 (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true


refl
m_better_1, m_better_1 dedup F (List.map (fun m' => Meas.concat F m_better m') ms) dominates F m_better_1 (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true

h_pareto: pareto F ms


refl
m_better_1, m_better_1 dedup F (List.map (fun m' => Meas.concat F m_better m') ms) dominates F m_better_1 (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true

h_pareto: pareto F ms

h_cost: cost_increasing_non_strict F (List.map (fun m' => Meas.concat F m_better m') ms)


refl
m_better_1, m_better_1 dedup F (List.map (fun m' => Meas.concat F m_better m') ms) dominates F m_better_1 (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true

h_pareto: pareto F ms

h_cost: cost_increasing_non_strict F (List.map (fun m' => Meas.concat F m_better m') ms)

h_last: last_decreasing (List.map (fun m' => Meas.concat F m_better m') ms)


refl
m_better_1, m_better_1 dedup F (List.map (fun m' => Meas.concat F m_better m') ms) dominates F m_better_1 (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true

h_pareto: pareto F ms

h_cost: cost_increasing_non_strict F (List.map (fun m' => Meas.concat F m_better m') ms)

h_last: last_decreasing (List.map (fun m' => Meas.concat F m_better m') ms)

m_ult: Meas

h_mem_ult: m_ult dedup F (List.map (fun m' => Meas.concat F m_better m') ms)

h_dom_ult: dominates F m_ult ((fun m' => Meas.concat F m_better m') m_better_right) = true


refl
m_better_1, m_better_1 dedup F (List.map (fun m' => Meas.concat F m_better m') ms) dominates F m_better_1 (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true

h_pareto: pareto F ms

h_cost: cost_increasing_non_strict F (List.map (fun m' => Meas.concat F m_better m') ms)

h_last: last_decreasing (List.map (fun m' => Meas.concat F m_better m') ms)

m_ult: Meas

h_mem_ult: m_ult dedup F (List.map (fun m' => Meas.concat F m_better m') ms)

h_dom_ult: dominates F m_ult ((fun m' => Meas.concat F m_better m') m_better_right) = true


refl
m_ult dedup F (List.map (fun m' => Meas.concat F m_better m') ms) dominates F m_ult (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)

this: ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better m_result_better = true

m_better_right: Meas

h: ms []

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true

h_pareto: pareto F ms

h_cost: cost_increasing_non_strict F (List.map (fun m' => Meas.concat F m_better m') ms)

h_last: last_decreasing (List.map (fun m' => Meas.concat F m_better m') ms)

m_ult: Meas

h_mem_ult: m_ult dedup F (List.map (fun m' => Meas.concat F m_better m') ms)

h_dom_ult: dominates F m_ult ((fun m' => Meas.concat F m_better m') m_better_right) = true


refl
dominates F m_ult (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁: Meas

h_dom: dominates F m_better m₁ = true

m_result_better: Meas

h_dom_better: dominates F m_result_better m₂ = true

ms: List Meas

m_better_right: Meas

h_better_right: m_better_right ms dominates F m_better_right m_result_better = true

m_ult: Meas

h_dom_ult: dominates F m_ult ((fun m' => Meas.concat F m_better m') m_better_right) = true


refl
dominates F m_ult (Meas.concat F m₁ m₂) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


refl
m_ult.last m₂.last Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


refl.left
m_ult.last m₂.last
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


refl.right
Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


m_ult.last m₂.last
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: m_ult.last m_better_right.last


m_ult.last m₂.last
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


m_ult.last m₂.last
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: m_ult.last m_better_right.last

bb: m_better_right.last m_result_better.last


m_ult.last m₂.last
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


m_ult.last m₂.last
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: m_ult.last m_better_right.last

bb: m_better_right.last m_result_better.last

cc: m_result_better.last m₂.last


m_ult.last m₂.last
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


m_ult.last m₂.last
α✝: Type

m₂, m_result_better, m_better_right, m_ult: Meas

aa: m_ult.last m_better_right.last

bb: m_better_right.last m_result_better.last

cc: m_result_better.last m₂.last


m_ult.last m₂.last
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


m_ult.last m₂.last

Goals accomplished! 🐙
d₂: Doc

L₂: List Doc

d_right: Doc

α✝: Type

F: Factory α✝

m_better: Meas

i:

m₂, m₁: Meas

h_widen: Widen d₂ L₂

h_choiceless: d_right L₂

h_render: MeasRender F d_right m₁.last i m₂

h_x: m₁.x F.W m₂.x F.W

h_y: m₁.y F.W m₂.y F.W

h_dom: dominates F m_better m₁ = true

h_is_choiceless: Choiceless d_right

m_result_better: Meas

h_render_better: MeasRender F d_right m_better.last i m_result_better

h_dom_better: dominates F m_result_better m₂ = true

h_dom_good: m_result_better.x F.W m_result_better.y F.W

ms: List Meas

h_non_empty✝: ms []

h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)


ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) []) = MeasureSet.set ms_1 h m_better, m_better ms_1 dominates F m_better (Meas.concat F m₁ m₂) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true


Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true


Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true


Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a
Factory.le F m_ult.cost ?c₂ = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a
Factory.le F ?c₂ (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


c₂
α✝
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a
Factory.le F m_ult.cost ?c₂ = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a
Factory.le F ?c₂ (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


c₂
α✝

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true


Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a
Factory.le F (Factory.concat F m_better.cost m_better_right.cost) (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a
Factory.le F m_better.cost m₁.cost = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a
Factory.le F m_better_right.cost m₂.cost = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a
Factory.le F (Factory.concat F m_better.cost m_better_right.cost) (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a
Factory.le F m_better.cost m₁.cost = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a
Factory.le F m_better_right.cost m₂.cost = true

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a
Factory.le F (Factory.concat F m_better.cost m_better_right.cost) (Factory.concat F m₁.cost m₂.cost) = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a
Factory.le F m_better_right.cost m₂.cost = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a.a
Factory.le F m_better_right.cost ?a.a.c₂✝ = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a.a
Factory.le F ?a.a.c₂✝ m₂.cost = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a.c₂
α✝
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a
Factory.le F m_better_right.cost m₂.cost = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a.a
Factory.le F m_better_right.cost ?a.a.c₂✝ = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a.a
Factory.le F ?a.a.c₂✝ m₂.cost = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a.c₂
α✝

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a
Factory.le F m_better_right.cost m₂.cost = true
α✝: Type

F: Factory α✝

m_better, m₂, m₁, m_result_better: Meas

ms: List Meas

m_better_right, m_ult: Meas

h_dom_ult: m_ult.last m_better_right.last Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

h_dom: m_better.last m₁.last Factory.le F m_better.cost m₁.cost = true

h_dom_better: m_result_better.last m₂.last Factory.le F m_result_better.cost m₂.cost = true

h_better_right: m_better_right ms m_better_right.last m_result_better.last Factory.le F m_better_right.cost m_result_better.cost = true

aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true

bb: Factory.le F m_better_right.cost m_result_better.cost = true

cc: Factory.le F m_result_better.cost m₂.cost = true

dd: Factory.le F m_better.cost m₁.cost = true


a.a.a
Factory.le F m_result_better.cost m₂.cost = true

Goals accomplished! 🐙
end termination_by Resolve_optimal => (
d: Doc
d
.
size: Doc
size
,
0: ?m.247913
0
,
0: ?m.247924
0
) ResolveConcat_optimal => (
d₂: Doc
d₂
.
size: Doc
size
,
2: ?m.248330
2
,
ms: List Meas
ms
.
length: {α : Type ?u.248339} → List α
length
) ResolveConcatOne_optimal => (
d₂: Doc
d₂
.
size: Doc
size
,
1: ?m.248660
1
,
0: ?m.248667
0
)